From b352ab545ef3b073f1cbc5027015f15d1950e098 Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Fri, 4 Apr 2025 17:53:45 +0200 Subject: [PATCH] simple way to add more logs related to upload progress will be important to try to see upload performance bottlenecks Signed-off-by: Matthieu Gallien --- src/libsync/propagateupload.cpp | 13 +++++++++++-- src/libsync/putmultifilejob.cpp | 13 ++++--------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp index 2bac80f17..ab7899c52 100644 --- a/src/libsync/propagateupload.cpp +++ b/src/libsync/propagateupload.cpp @@ -64,18 +64,27 @@ void PUTFileJob::start() req.setPriority(QNetworkRequest::LowPriority); // Long uploads must not block non-propagation jobs. + auto requestID = QByteArray{}; + if (_url.isValid()) { - sendRequest("PUT", _url, req, _device); + const auto reply = sendRequest("PUT", _url, req, _device); + requestID = reply->request().rawHeader("X-Request-ID"); } else { - sendRequest("PUT", makeDavUrl(path()), req, _device); + const auto reply = sendRequest("PUT", makeDavUrl(path()), req, _device); + requestID = reply->request().rawHeader("X-Request-ID"); } if (reply()->error() != QNetworkReply::NoError) { qCWarning(lcPutJob) << " Network error: " << reply()->errorString(); } + connect(reply(), &QNetworkReply::uploadProgress, this, [requestID] (qint64 bytesSent, qint64 bytesTotal) { + qCDebug(lcPutJob()) << requestID << "upload progress" << bytesSent << bytesTotal; + }); + connect(reply(), &QNetworkReply::uploadProgress, this, &PUTFileJob::uploadProgress); connect(this, &AbstractNetworkJob::networkActivity, account().data(), &Account::propagatorNetworkActivity); + _requestTimer.start(); AbstractNetworkJob::start(); } diff --git a/src/libsync/putmultifilejob.cpp b/src/libsync/putmultifilejob.cpp index 10e202e46..aa23e9b5c 100644 --- a/src/libsync/putmultifilejob.cpp +++ b/src/libsync/putmultifilejob.cpp @@ -71,21 +71,16 @@ void PutMultiFileJob::start() _body.append(onePart); } - sendRequest("POST", _url, req, &_body); + const auto newReply = sendRequest("POST", _url, req, &_body); + const auto &requestID = newReply->request().rawHeader("X-Request-ID"); if (reply()->error() != QNetworkReply::NoError) { qCWarning(lcPutMultiFileJob) << " Network error: " << reply()->errorString(); } connect(reply(), &QNetworkReply::uploadProgress, this, &PutMultiFileJob::uploadProgress); - connect(reply(), &QNetworkReply::uploadProgress, this, [] (qint64 bytesSent, qint64 bytesTotal) { - qCDebug(lcPutMultiFileJob()) << "upload progress" << bytesSent << bytesTotal; - }); - connect(reply(), &QNetworkReply::bytesWritten, this, [] (qint64 bytesSent) { - qCDebug(lcPutMultiFileJob()) << "upload progress" << bytesSent; - }); - connect(reply(), &QNetworkReply::requestSent, this, [] () { - qCDebug(lcPutMultiFileJob()) << "request sent"; + connect(reply(), &QNetworkReply::uploadProgress, this, [requestID] (qint64 bytesSent, qint64 bytesTotal) { + qCDebug(lcPutMultiFileJob()) << requestID << "upload progress" << bytesSent << bytesTotal; }); connect(this, &AbstractNetworkJob::networkActivity, account().data(), &Account::propagatorNetworkActivity); _requestTimer.start(); -- 2.30.2